<?php
/**
 * 框架引导文件
 */
//框架根目录
define('DOOM_BASE_DIR', dirname(__FILE__) . '/');

//项目lib目录（必须是doom框架根目录的上级目录）
define('DOOM_PROJECT_LIB_DIR', DOOM_BASE_DIR . '../lib/');

/*
 * __autoload加载class文件
 */
function __autoload($className) {
    if (strpos($className, 'doom_') === 0) {
        $classFile = DOOM_BASE_DIR . str_replace('_', '/', str_replace('doom_', '', $className)) . '.cls.php';
    } else if (preg_match('/^(config|model|ctrl|cache|helper|service)_/', $className, $m) === 1) {
        $classFile = doom_config::$PROJECT_BASE_DIR . str_replace('_', '/', $className) . '.' . str_replace(array('config', 'model', 'helper', 'service'), array('cfg', 'mdl', 'hlp', 'srv'), $m[1]) . '.php';
    } else {
        $classFile = doom_config::$PROJECT_BASE_DIR . str_replace('_', '/', $className) . '.cls.php';
    }
    if (file_exists($classFile)) {
        require_once $classFile;
        //检测并调用类的静态构造器“_static_construct”
        $staticConstruct = $className . '::_static_construct';
        if (is_callable($staticConstruct)) {
            call_user_func($staticConstruct);
        }
    } else {
        //TODO
        echo $className . ' is not found at ' . $classFile;
    }
}
?>